草庐IT

java - long 1l,float 1f,double 1d,byte呢?

全部标签

c# - Double.Parse 没有给出正确的结果

我在两个应用程序中尝试这个;一个控制台应用程序和一个网络应用程序。在控制台应用程序中,当我尝试Double.Parse("0.5")它给出0.5或Double.Parse(".5")给出0.5但是在Web应用程序中Double.Parse("0.5")给出5.0而Double.Parse(".5")给出异常Inputstringwasnotinacorrectformat.谁能告诉我如何解决网络应用程序中的问题? 最佳答案 您应该提供文化信息,否则它会使用来自当前运行线程的文化信息。试试这个:CultureInfocultureIn

c# - 为什么 IsNan 是 Double 类的静态方法而不是实例属性?

问题在标题里,为什么:returndouble.IsNaN(0.6d)&&double.IsNaN(x);代替return(0.6d).IsNaN&&x.IsNaN;我问是因为在实现具有与NaN相同含义的特殊值的自定义结构时,我倾向于选择第二种。此外,属性的性能通常更好,因为它避免了复制堆栈上的结构来调用IsNaN静态方法(而且由于我的属性不是虚拟的,所以没有自动装箱的风险)。诚然,这对于内置类型来说并不是真正的问题,因为JIT可以轻松地对其进行优化。我现在最好的猜测是,由于您不能在double类中同时拥有同名的属性和静态方法,因此他们更喜欢受java启发的语法。(事实上​​,您可以同

c# - float 中的E是什么?

什么是E+3?这里到底发生了什么?我们可以在其他数据类型中使用这种方法,还是只能在float中使用它?staticvoidMain(string[]args){doublew=1.7E+3;Console.WriteLine(w);}输出:1700 最佳答案 EnotationMostcalculatorsandmanycomputerprogramspresentverylargeandverysmallresultsinscientificnotation.Becausesuperscriptedexponentslike107

c# - 如何找到列表 <double> 的模式?

我有一个列表:Listfinal=newList();final.Add(1);final.Add(2);final.Add(3);我可以使用什么样的方法来找到这个列表的模式?此外,如果有两种模式,该函数将返回两者中较小的一个。 最佳答案 int?modeValue=final.GroupBy(x=>x).OrderByDescending(x=>x.Count()).ThenBy(x=>x.Key).Select(x=>(int?)x.Key).FirstOrDefault();它所需要的只是一些组合的LINQ操作。您也可以用查询

c# - 调试/ Release模式下的浮点/ double

C#/.NET浮点运算在Debug模式和Release模式之间的精度是否不同? 最佳答案 它们确实可以不同。根据CLRECMA规范:Storagelocationsforfloating-pointnumbers(statics,arrayelements,andfieldsofclasses)areoffixedsize.Thesupportedstoragesizesarefloat32andfloat64.Everywhereelse(ontheevaluationstack,asarguments,asreturntypes

c# - 存在从 'float' 和 'float' 以及从 'float' 到 'float' 的隐式转换

这可能是我一段时间以来收到的最好的错误消息,我很好奇出了什么问题。原代码floatcurrElbowAngle=LeftArm?Elbow.transform.localRotation.eulerAngles.y:360f-Elbow.transform.localRotation.eulerAngles.y我正在使用Unity3d和C#;LeftArm是一个bool类型,根据documentationElbow.transform.localRotation.eulerAngles.y返回一个float值。这段代码给我错误:Thereexistsbothimplicitconver

c# - float 的乘法性能不一致

在.NET中测试float的性能时,我偶然发现了一个奇怪的情况:对于某些值,乘法似乎比正常情况慢得多。这是测试用例:usingSystem;usingSystem.Diagnostics;namespaceNumericPerfTestCSharp{classProgram{staticvoidMain(){Benchmark(()=>float32Multiply(0.1f),"\nfloat32Multiply(0.1f)");Benchmark(()=>float32Multiply(0.9f),"\nfloat32Multiply(0.9f)");Benchmark(()=>f

c# - 从 int 转换为 float 的问题

有一个我无法理解的奇怪行为。同意float是近似值,因此即使显然返回没有小数的数字的操作也可以近似为带小数的数字。我这样做:intnum=(int)(195.95F*100);因为这是一个浮点运算,所以我得到19594而不是19595..但这是正确的。让我困惑的是,如果我这样做floatflo=195.95F*100;intnum=(int)flo;我得到了19595的正确结果。知道为什么会这样吗? 最佳答案 我想看看这是不是编译器在做数学运算,但即使你强制它,它的行为也是这样的:staticvoidMain(){inti=(int

c# - .NET “double” 算法是否独立于平台/体系结构?

如果我在Windows(x86和x64)下的.NET上运行涉及System.Double的复杂计算,然后在Mono(Linux、Unix等)上运行,绝对有保证以在所有情况下得到完全相同的结果,或者规范是否允许在计算中有一些回旋余地? 最佳答案 来自MSDNInaddition,thelossofprecisionthatresultsfromarithmetic,assignment,andparsingoperationswithDoublevaluesmaydifferbyplatform.Forexample,theresul

c# - 要比较 double 和十进制,我应该将 double 转换为十进制还是将十进制转换为 double ?

我需要比较两个值。一个值是price这代表某物的当前价格等等decimal因为您实际上可以按照这个价格买卖东西。另一个值是estimatedPrice这是数学计算的结果,所以double因为它只是estimation你实际上不能通过这个esitmatedPrice做任何“操作”现在我想买如果price.那么我应该将price转换为double还是将estimatedPrice转换为decimal?我知道在转换后我会得到“略微不同”的数字,但似乎我没有其他选择。 最佳答案 这取决于数据。十进制具有更高的精度;double的范围更大。如